//==============================================================================
//
// Title:       SetSignalGenerator.h
// Purpose:     A short description of the interface.
//
// Created on:  2012-5-11 at 11:12:01 by luh.
// Copyright:   dafda. All Rights Reserved.
//
//==============================================================================

#ifndef __SetSignalGenerator_H__
#define __SetSignalGenerator_H__

#ifdef __cplusplus
    extern "C" {
#endif

//==============================================================================
// Include files

#include "cvidef.h"
#include "hpesg.h"
/////////////////////////////////////////////////////////////////////////////
// Definitions
/////////////////////////////////////////////////////////////////////////////

#define ESG_BUFFER_SIZE         2048L

/////////////////////////////////////////////////////////////////////////////
// Macro definitions
/////////////////////////////////////////////////////////////////////////////

// Catch for Agilent Esg driver errors
#define esgErrChk(fcall)\
\
if((viStatus = (fcall)) != 0) {\
   if(g_hSignalGenerator != 0)\
      hpESG_error_message (g_hSignalGenerator, viStatus, errMsg);\
   else\
      sprintf(errMsg, "ESG call failed ! Error code: %ld", viStatus);\
   if(viStatus < 0) error = -1;\
   if(error < 0) goto Error;\
} else

/////////////////////////////////////////////////////////////////////////////
// Globals
/////////////////////////////////////////////////////////////////////////////
extern ViSession   g_hSignalGenerator;

/////////////////////////////////////////////////////////////////////////////
// Function prototypes
/////////////////////////////////////////////////////////////////////////////
int InitSignalGenerator( void );
int SetupEsgSignalGeneration( int iScramblingCode );
int SetupEsgSignalRxWcdma( int iScramblingCode ); 
int SetupEsgSignalBbgDLWcdma( int iScramblingCode) ;
int LoadArbFile (char* pszArbFileName );
int WaitForEsgOPC(void);
int CVICALLBACK SignalGeneratorInitThreadFunc( void* functionData );
int CVICALLBACK SignalGeneratorBerSetupThreadFunc( void* functionData );

int SetSignalGenerator (int x) ;

#ifdef __cplusplus
    }
#endif

#endif  /* ndef __SetSignalGenerator_H__ */
